package com.geezdata.cps.sdk3rd.youzan.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.alibaba.fastjson.annotation.JSONField;

public class Trade {
    
    private String tid; //  交易编号 
    
    private Integer num; //  商品购买数量。当一个trade对应多个order的时候，值为所有商品购买数量之和
    
    @JSONField(name="num_iid")
    private Integer numIid; //  商品数字编号。当一个trade对应多个order的时候，值为第一个交易明细中的商品的编号 
    
    private BigDecimal price; //  商品价格。精确到2位小数；单位：元。当一个trade对应多个order的时候，值为第一个交易明细中的商品的价格 
    
    @JSONField(name="pic_path")
    private String picPath; //  商品主图片地址。当一个trade对应多个order的时候，值为第一个交易明细中的商品的图片地址 
    
    @JSONField(name="pic_thumb_path")
    private String picThumbPath; //  商品主图片缩略图地址 
    
    private String title; //  交易标题，以首个商品标题作为此标题的值 
    
    private String type; //  交易类型。取值范围：fixed （一口价）gift （送礼）bulk_purchase（来自分销商的采购）present （赠品领取）group （拼团订单）pifa （批发订单）cod （货到付款）peer （代付）qrcode（扫码商家二维码直接支付的交易）qrcode_3rd（线下收银台二维码交易)
    
    @JSONField(name="weixin_user_id")
    private String weixinUserId; //  微信粉丝id 
    
    @JSONField(name="buyer_type")
    private Integer buyerType; //  买家类型，可选值：0 为未知，1 为微信粉丝，2 为微博粉丝 
    
    @JSONField(name="buyer_id")
    private String buyerId; //  买家id，当 buyer_type 为 1 时，buyer_id 的值等于 weixin_user_id 的值 
    
    @JSONField(name="buyer_nick")
    private String buyerNick; //  买家昵称 
    
    @JSONField(name="seller_flag")
    private Integer sellerFlag; //  卖家备注星标，取值范围 1、2、3、4、5 
    
    @JSONField(name="receiver_city")
    private String receiverCity; //  收货人的所在城市 
    
    @JSONField(name="receiver_district")
    private String receiverDistrict; //  收货人的所在地区 
    
    @JSONField(name="receiver_name")
    private String receiverName; //  收货人的姓名 
    
    @JSONField(name="receiver_state")
    private String receiverState; //  收货人的所在省份 
    
    @JSONField(name="receiver_address")
    private String receiverAddress; //  收货人的详细地址 
    
    @JSONField(name="receiver_zip")
    private String receiverZip; //  收货人的邮编 
    
    @JSONField(name="receiver_mobile")
    private String receiverMobile; //  收货人的手机号码 
    
    private Integer feedback; //  交易维权状态。0 无维权，1 顾客发起维权，9 商家正在处理，2 顾客拒绝商家的处理结果，3 顾客接受商家的处理结果 
    
    @JSONField(name="refund_state")
    private String refundState; //  退款状态。取值范围：no_refund（无退款）partial_refunding（部分退款中）partial_refunded（已部分退款）partial_refund_failed（部分退款失败）full_refunding（全额退款中）full_refunded（已全额退款）full_refund_failed（全额退款失败）
    
    @JSONField(name="outer_tid")
    private String outerTid; //  外部交易编号。比如，如果支付方式是微信支付，就是财付通的交易单号 
    
    private String status; //  交易状态。可选值：trade_no_create_pay(没有创建支付交易)wait_buyer_pay(等待买家付款) wait_seller_send_goods(等待卖家发货，即：买家已付款) wait_buyer_confirm_goods(等待买家确认收货，即：卖家已发货) trade_buyer_signed(买家已签收) trade_closed(付款以后用户退款成功，交易自动关闭) trade_closed_by_user(付款以前，卖家或买家主动关闭交易)
    
    @JSONField(name="shipping_type")
    private String shippingType; //  创建交易时的物流方式。可选值：express（快递），fetch（到店自提） 
    
    @JSONField(name="post_fee")
    private BigDecimal postFee; //  运费。单位：元，精确到分 
    
    @JSONField(name="total_fee")
    private BigDecimal totalFee; //  商品总价（商品价格乘以数量的总金额）。单位：元，精确到分 
    
    @JSONField(name="refunded_fee")
    private BigDecimal refundedFee; //  交易完成后退款的金额。单位：元，精确到分 
    
    @JSONField(name="discount_fee")
    private BigDecimal discountFee; //  交易优惠金额（不包含交易明细中的优惠金额）。单位：元，精确到分 
    
    private BigDecimal payment; //  实付金额。单位：元 
    
    private Date created; //  交易创建时间 
    
    @JSONField(name="update_time")
    private Date updateTime; //  交易更新时间。当交易的：状态改变、备注更改、星标更改 等情况下都会刷新更新时间 
    
    @JSONField(name="pay_time")
    private Date payTime; //  买家付款时间 
    
    @JSONField(name="pay_type")
    private String payType; //  支付类型。可选值：weixin（微信支付），alipay（支付宝支付），bankcardpay（银行卡支付），peerpay（代付），codpay（货到付款） baidupay（百度钱包支付）
    
    @JSONField(name="consign_time")
    private Date consignTime; //  卖家发货时间 
    
    @JSONField(name="sign_time")
    private Date signTime; //  买家签收时间 
    
    @JSONField(name="buyer_area")
    private String buyerArea; //  买家下单的地区 
    
    @JSONField(name="sum_total_fee")
    private BigDecimal sumTotalFee; //  订单中所有商品的总额之和 
    
    @JSONField(name="total_discount_fee")
    private BigDecimal totalDiscountFee; //  包括订单级别和商品级别的折扣总额 
    
    @JSONField(name="total_payment")
    private BigDecimal totalPayment; //  订单的应付金额，值为订单中所有商品总额之和-订单级别和商品级别的折扣总额+运费，即sum_total_fee-total_discount_fee+post_fee 
    
    
    @JSONField(name="pf_buy_way_str")
    private String pfBuyWayStr;
    
    @JSONField(name="adjust_fee")
    private AdjustFee adjustFee;
    
    private List<Order> orders;
    
    private List<FetchDetail> fetchDetails;
    
    private List<CouponDetail> couponDetails;
    
    private List<PromotionDetail> promotionDetails;

    public String getTid() {
        return tid;
    }

    public void setTid(String tid) {
        this.tid = tid;
    }

    public Integer getNum() {
        return num;
    }

    public void setNum(Integer num) {
        this.num = num;
    }

    public Integer getNumIid() {
        return numIid;
    }

    public void setNumIid(Integer numIid) {
        this.numIid = numIid;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public String getPicPath() {
        return picPath;
    }

    public void setPicPath(String picPath) {
        this.picPath = picPath;
    }

    public String getPicThumbPath() {
        return picThumbPath;
    }

    public void setPicThumbPath(String picThumbPath) {
        this.picThumbPath = picThumbPath;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getWeixinUserId() {
        return weixinUserId;
    }

    public void setWeixinUserId(String weixinUserId) {
        this.weixinUserId = weixinUserId;
    }

    public Integer getBuyerType() {
        return buyerType;
    }

    public void setBuyerType(Integer buyerType) {
        this.buyerType = buyerType;
    }

    public String getBuyerId() {
        return buyerId;
    }

    public void setBuyerId(String buyerId) {
        this.buyerId = buyerId;
    }

    public String getBuyerNick() {
        return buyerNick;
    }

    public void setBuyerNick(String buyerNick) {
        this.buyerNick = buyerNick;
    }

    public Integer getSellerFlag() {
        return sellerFlag;
    }

    public void setSellerFlag(Integer sellerFlag) {
        this.sellerFlag = sellerFlag;
    }

    public String getReceiverCity() {
        return receiverCity;
    }

    public void setReceiverCity(String receiverCity) {
        this.receiverCity = receiverCity;
    }

    public String getReceiverDistrict() {
        return receiverDistrict;
    }

    public void setReceiverDistrict(String receiverDistrict) {
        this.receiverDistrict = receiverDistrict;
    }

    public String getReceiverName() {
        return receiverName;
    }

    public void setReceiverName(String receiverName) {
        this.receiverName = receiverName;
    }

    public String getReceiverState() {
        return receiverState;
    }

    public void setReceiverState(String receiverState) {
        this.receiverState = receiverState;
    }

    public String getReceiverAddress() {
        return receiverAddress;
    }

    public void setReceiverAddress(String receiverAddress) {
        this.receiverAddress = receiverAddress;
    }

    public String getReceiverZip() {
        return receiverZip;
    }

    public void setReceiverZip(String receiverZip) {
        this.receiverZip = receiverZip;
    }

    public String getReceiverMobile() {
        return receiverMobile;
    }

    public void setReceiverMobile(String receiverMobile) {
        this.receiverMobile = receiverMobile;
    }

    public Integer getFeedback() {
        return feedback;
    }

    public void setFeedback(Integer feedback) {
        this.feedback = feedback;
    }

    public String getRefundState() {
        return refundState;
    }

    public void setRefundState(String refundState) {
        this.refundState = refundState;
    }

    public String getOuterTid() {
        return outerTid;
    }

    public void setOuterTid(String outerTid) {
        this.outerTid = outerTid;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getShippingType() {
        return shippingType;
    }

    public void setShippingType(String shippingType) {
        this.shippingType = shippingType;
    }

    public BigDecimal getPostFee() {
        return postFee;
    }

    public void setPostFee(BigDecimal postFee) {
        this.postFee = postFee;
    }

    public BigDecimal getTotalFee() {
        return totalFee;
    }

    public void setTotalFee(BigDecimal totalFee) {
        this.totalFee = totalFee;
    }

    public BigDecimal getRefundedFee() {
        return refundedFee;
    }

    public void setRefundedFee(BigDecimal refundedFee) {
        this.refundedFee = refundedFee;
    }

    public BigDecimal getDiscountFee() {
        return discountFee;
    }

    public void setDiscountFee(BigDecimal discountFee) {
        this.discountFee = discountFee;
    }

    public BigDecimal getPayment() {
        return payment;
    }

    public void setPayment(BigDecimal payment) {
        this.payment = payment;
    }

    public Date getCreated() {
        return created;
    }

    public void setCreated(Date created) {
        this.created = created;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public Date getConsignTime() {
        return consignTime;
    }

    public void setConsignTime(Date consignTime) {
        this.consignTime = consignTime;
    }

    public Date getSignTime() {
        return signTime;
    }

    public void setSignTime(Date signTime) {
        this.signTime = signTime;
    }

    public String getBuyerArea() {
        return buyerArea;
    }

    public void setBuyerArea(String buyerArea) {
        this.buyerArea = buyerArea;
    }

    public BigDecimal getSumTotalFee() {
        return sumTotalFee;
    }

    public void setSumTotalFee(BigDecimal sumTotalFee) {
        this.sumTotalFee = sumTotalFee;
    }

    public BigDecimal getTotalDiscountFee() {
        return totalDiscountFee;
    }

    public void setTotalDiscountFee(BigDecimal totalDiscountFee) {
        this.totalDiscountFee = totalDiscountFee;
    }

    public BigDecimal getTotalPayment() {
        return totalPayment;
    }

    public void setTotalPayment(BigDecimal totalPayment) {
        this.totalPayment = totalPayment;
    }

    public String getPfBuyWayStr() {
        return pfBuyWayStr;
    }

    public void setPfBuyWayStr(String pfBuyWayStr) {
        this.pfBuyWayStr = pfBuyWayStr;
    }

    public AdjustFee getAdjustFee() {
        return adjustFee;
    }

    public void setAdjustFee(AdjustFee adjustFee) {
        this.adjustFee = adjustFee;
    }

    public List<Order> getOrders() {
        return orders;
    }

    public void setOrders(List<Order> orders) {
        this.orders = orders;
    }

    public List<FetchDetail> getFetchDetails() {
        return fetchDetails;
    }

    public void setFetchDetails(List<FetchDetail> fetchDetails) {
        this.fetchDetails = fetchDetails;
    }

    public List<CouponDetail> getCouponDetails() {
        return couponDetails;
    }

    public void setCouponDetails(List<CouponDetail> couponDetails) {
        this.couponDetails = couponDetails;
    }

    public List<PromotionDetail> getPromotionDetails() {
        return promotionDetails;
    }

    public void setPromotionDetails(List<PromotionDetail> promotionDetails) {
        this.promotionDetails = promotionDetails;
    }
    
        
    
} 
